Non-volatile data storage devices, such as embedded memory devices and removable memory devices (e.g., removable universal serial bus (USB) flash memory devices and other removable storage cards), have allowed for increased portability of data and software applications. Users of non-volatile data storage devices increasingly rely on the non-volatile storage devices to store and provide rapid access to a large amount of data.
Many data storage devices can operate in a multiple distinct mode. For example, certain data storage devices may be operable in a command queue mode when a command queue is enabled and not empty. Each mode of operation may be associated with a set of operations that are authorized (e.g., allowed) to be executed by the data storage device. The set of authorized commands may not include all commands that are recognized by the data storage device. That is, some commands may be unauthorized for execution while operating in particular modes. To be able to execute an unauthorized command, the data storage device may have to exit the current mode of operation. For example, while operating in the command queue mode, to execute a command that is not authorized for execution in the command queue mode, a data storage device may need to exit the command queue mode, e.g., by flushing the command queue of all pending commands (without executing the pending commands) or by execute each of the pending commands in the command queue to empty the command queue. After the command queue is empty, the device may be able to change modes and execute commands that are not authorized in the command queue mode. Flushing the command queue of pending commands or executing all pending commands in the command queue delays execution of a command that is not authorized in the command queue mode